/**
 * @desc 242. Valid Anagram
 *   determine if t is an anagram of s.
 *    判断两个字符串是否为相同字母的异序词
 *      1.长度相同
 *      2.字母相同
 * 思路1：
 *      将nums1 hash
 *      nums2对比nums1的hash。
 *      if the inputs contain unicode characters?
 * 思路2:
 *      定义两个数组。26个字母。即桶排序思想
 *      将nums1.charCodeAt(i)-97 丢到桶里
 *      循环判断两个桶是否一致
 */

 /**
 * @param {string} s
 * @param {string} t
 * @return {boolean}
 */
/*
var isAnagram = function(s, t) {
    if(s.length!==t.length){
        return false;
    }
   let hash = {};
    // 对s进行hash
    for(let i = 0;i<s.length;i++){
        let curUnicode = s.charCodeAt(i);
        hash[curUnicode] = (hash[curUnicode]||0)+1;
    }

    // 依据s的hash对比t
    let index = 0;
    for(let j = 0;j<t.length;j++){
        let tUnicode = t.charCodeAt(j);
        if(hash[tUnicode]>0){
            index++;
            hash[tUnicode]--;
        }
    }

    let result =index===t.length?true:false;
    return result;
};
*/
let s = "anagram", t = "naagram";
console.log(isAnagram(s,t))

function isAnagram(s,t){
    if(s.length!==t.length){
        return false;
    }

    let count1 = new Array(26).fill(0);
    let count2 = new Array(26).fill(0);

    for(let i =0;i<s.length;i++){
        count1[s.charCodeAt(i)-97]++;
        count2[t.charCodeAt(i)-97]++;
    }

    for(let i=0;i<26;i++){
        if(count1[i]!==count2[i]){
            return false;
        }
    }
    return true;
}